//
// Created by yewei on 2022/12/29.
//
#include <bits/stdc++.h>

using namespace std;

// x进制转换为y进制
int conversion(int in[], int out[], int n, int x, int y)
{
    // 转换为y进制之后的长度
    int size = 0;
    // 每次迭代是一次除法
    int i = 0;
    while (i < n)
    {
        int remainder = 0;
        // 记录上一位运算得到的余数
        int dividend;
        // 记录上一位运算得到的商
        // 每次迭代是一位数字的除法
        for (int j = i; j < n; j++)
        {
            dividend = remainder * x + in[j];
            in[j] = dividend / y;
            remainder = dividend % y;
        }
        out[size++] = remainder;
        // 去除商前面所有的0
        // 添加判断范围条件，之前为 while (in[i] == 0) i++;
        while (in[i] == 0 && i < n) i++;
    }
    return size;
}


int main()
{
    string s;
    int x,y;
    int in[121];
    int out[121];
    while (cin >>  x >>y>>s)
    {
        // 输入
        int n = s.length();
        for (int i = 0; i < n; i++)
        {
            if (s[i]>='0' && s[i]<='9')
                in[i] = s[i] - '0';
            else if (s[i]>='A' && s[i]<='Z')
                in[i] = s[i] - 'A' + 10;
            else if (s[i]>='a' && s[i]<='z')
                in[i] = s[i] - 'a' + 36;
        }

        // 10进制转换为2进制
        int size = conversion(in, out, n, x, y);

        char c;
        // 输出，需要逆序输出
        for (int i = size - 1; i >= 0; i--)
        {
            if(out[i]>=0 && out[i]<=9)
                cout << out[i] << ' ';

            else if (out[i] >= 10 && out[i] <= 35)
            {
                c = (char)out[i] - 10 + 'A';
                cout << c << ' ';
            }
            else if (out[i] >= 36 && out[i] <= 61)
            {
                c = (char)out[i] - 36 + 'a';
                cout << c << ' ';
            }
        }
        cout << endl;
    }
}
